// 封装分类数据业务相关代码
import { getTopCategoryAPI } from "@/apis/category";
import { onMounted, ref } from "vue";
import { onBeforeRouteUpdate, useRoute } from "vue-router";

export function useCategory() {
  const categoryData = ref({});
  const route = useRoute();
  const getCategory = async (id = route.params.id) => {
    const res = await getTopCategoryAPI(id);
    categoryData.value = res.result;
  };
  onMounted(() => {
    getCategory();
  });

  // 目标：路由参数变化的时候 可以把分类数据接口重新发送
  // onBeforeRouteUpdate(() => {
  //   console.log('路由变化了')
  //   // 直接这么使用存在的问题：没有使用最新的路由参数请求最新的分类数据
  //   getCategory()
  // })
  // to 到哪个路由 from 从哪个路由来 next 放行
  onBeforeRouteUpdate((to) => {
    getCategory(to.params.id);
  });

  return {
    categoryData
  }
}
